/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author ElDiego
 */
public class DAO {
     private Conexion con;
     List<Marca>listamarca;
     List<Categoria>listacategoria;
    
    public DAO() throws SQLException{
       con= new Conexion("localhost","transgenicos" ,"root", "123456");
    }
    
    public void crearAlimento(Alimento nuevo) throws SQLException{
        String insert = "insert into PRODUCTO"
                + "values("
                + "null,"
                + "'" + nuevo.getNombre() + "',"
                + "'" + nuevo.getMarca().getId() + "',"
                + "'" + nuevo.getCategoria().getId() + "',"
                + "'" + nuevo.getTransgenico() + "',";
        
        con.sentencia = con.conexion.createStatement();
        con.sentencia.execute(insert);
        con.sentencia.close();
                
    }
    public List<Alimento> getAlimentos() throws SQLException {
        List<Alimento> alimento = new ArrayList<Alimento>();

        String select = "select*from PRODUCTO";
        con.sentencia = con.conexion.createStatement();
        con.tablaResultado = con.sentencia.executeQuery(select);

        while (con.tablaResultado.next()) {
           
            String nombre=con.tablaResultado.getString("nombre");
            String idmarca= con.tablaResultado.getString("idmarca");
            
            Marca marca=getmarca(idmarca);
                    
           int idcategoria=con.tablaResultado.getInt("categoria");
            Categoria categoria=getcategoria(idcategoria);
            
            String transgenico=con.tablaResultado.getString("transgenico");
            
            Alimento a=new Alimento(nombre, marca, categoria, transgenico);
            alimento.add(a);
                    
        }

        con.sentencia.close();

        return alimento;
    }

    public Marca getmarca(String idmarca) {
        
        for(Marca X: listamarca){
            if(X.getId().equalsIgnoreCase(idmarca)){
            
            return X;
            }
            
       
        }
        return null;
    }

  
    private Categoria getcategoria(int idcategoria) {
        for(Categoria X: listacategoria){
            if(X.getId()==idcategoria){
            
            return X;
            }
            
       
        }
        return null;
    }
    
    
    
    
    
}
